package czStvDpds.mapmanagment;

import java.awt.Point;

/**
 * Základní rozhraní mapy. Mapa bude především sestávat z dvojrozměrného pole
 * objektů Tile (dlaždic) a z metod jej obsluhující.
 *
 * @author Jirka
 */
public interface AccesibleMap {

    /**
     * Vrátí dlaždici na zadané pozici. Pozice je zadávána v dlaždicích, tudíž
     * chcete-li druhou dlaždici z prava a třetí zezhora zadáte parametry x:1 a
     * y:2 (první dlaždice je 0)
     *
     * @param x
     * @param y
     * @return
     */
    public Tile getTile(int x, int y);

    /**
     * Nastaví dlaždici na zadaných souřadních na dlaždici zadanou v
     * parametrech. Tato metoda bude pravděpodobně používána pouze při nahrávání
     * mapy.
     *
     * @param x
     * @param y
     * @return
     */
    public void setTile(int x, int y, Tile tile);

    /**
     * Vrátí šířku mapy v dlaždicích.
     *
     * @return
     */
    public int getWidth();

    /**
     * Vrátí výšku mapy v dlaždicích
     *
     * @return
     */
    public int getHeight();
    
    /**
     * Vrátí náhodný spawn point.
     * 
     * @return 
     */
    public Point getRandomSpawnPoint();
}
